#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
#include<unistd.h>
#include<sys/types.h>

#define N 10

int main()
{
    //通过for循环创建多个子进程
    int i=0;
    for(;i<N; i++)
    {
        
         pid_t pid =fork();
         if(pid==0)
         {
             //子进程
             int i= 10;
             while(i--)
             {
                 printf("我是一个子进程,pid:%d, ppid:%d, count:%d\n",getpid(),getppid(),i);
                 sleep(1);
             }
             printf("子进程退出\n");
             
             //用于子进程运行完结束
             exit(1);
         }
    }

    printf("父进程开始等待子进程.....\n");

    //等待五秒再回收
    sleep(15);

    //父进程回收子进程也要用循环回收
    for(i=0;i<N;i++)
    {
        
        //在不知道wait参数是什么情况下直接给NULL
        pid_t ret=wait(NULL);
        if(ret>0)
        {
            printf("父进程等待成功，子进程pid:%d\n",ret);
        }
    }
    return 0;
}
